home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1995 November / EnigmA AMIGA RUN 02 (1995)(G.R. Edizioni)(IT)[!][issue 1995-11][Skylink CD].iso / earcd / program / amos / amoslist.lzh / AMOSLIST / 000334_amos-request@svcs1.digex.net_Tue Sep 26 09:31:33 1995.msg < prev    next >
Internet Message Format  |  1995-10-02  |  4KB

  1. Received: from svcs1.digex.net (svcs1.digex.net [204.91.197.224]) by mail1.access.digex.net (8.6.12/8.6.12) with ESMTP id JAA19789;  for <mcox@access.digex.net> ; Tue, 26 Sep 1995 09:31:32 -0400
  2. Received: (from daemon@localhost) by svcs1.digex.net (8.6.12/8.6.12) id FAA09219 for amos-out; Tue, 26 Sep 1995 05:09:39 -0400
  3. Received: from mail1.access.digex.net (mail1.access.digex.net [205.197.247.2]) by svcs1.digex.net (8.6.12/8.6.12) with ESMTP id FAA09216 for <amos-list@svcs1.digex.net>; Tue, 26 Sep 1995 05:09:38 -0400
  4. Received: from tlti.tokem.fi (mystic@tlti.tokem.fi [193.64.110.2]) by mail1.access.digex.net (8.6.12/8.6.12) with ESMTP id FAA04212;  for <amos-list@access.digex.net> ; Tue, 26 Sep 1995 05:08:47 -0400
  5. Received: (from mystic@localhost) by tlti.tokem.fi (8.6.12/8.6.9) id LAA07713; Tue, 26 Sep 1995 11:06:58 +0200
  6. Date: Tue, 26 Sep 1995 10:59:39 +0200 (EET)
  7. From: Petri Hakkinen <mystic@tlti.tokem.fi>
  8. Subject: Re: Help me!
  9. To: Ben Wyatt <bwyatt@paston.co.uk>
  10. cc: amos-list@access.digex.net
  11. In-Reply-To: <9509261223.AA001x9@paston.co.uk.uucp>
  12. Message-ID: <Pine.3.87.9509261038.A7411-0100000@tlti>
  13. MIME-Version: 1.0
  14. Content-Type: TEXT/PLAIN; charset=US-ASCII
  15. Content-Transfer-Encoding: QUOTED-PRINTABLE
  16. Status: RO
  17. X-Status: 
  18.  
  19.  
  20.  
  21.  
  22.  
  23. On Tue, 26 Sep 1995, Ben Wyatt wrote:
  24.  
  25. > Greetings M.Berionne@agora.stm.it, you wrote some text on the subject Hel=
  26. p
  27. > me!, and now I'm going to answer it.
  28. >=20
  29. > M> I have to solve a problem in AMOS Pro programming: is there anyone who=
  30.  can
  31. > M> help me??
  32. > M> I explain the problem.
  33. > M> I must (or better, I want to) do a procedure to draw on a screen a par=
  34. t of
  35. > M>=20
  36. > M> a
  37. > M> circle. Is there any extension to do it??
  38. > M> Otherwise I have to use sin() and cos() function, but these are relly =
  39. very
  40. > M> slow.
  41. > M> The procedure should be like:
  42. > M>=20
  43. > M> Procedure PART_OF_CIRCLE[R,A,B]
  44. > M>      where R is the radius, A the value of the angle in degree
  45. > M>      and B is how many degrees the line is long
  46. > M>      (sorry for my English, can you understand me? :-(( )
  47. > M> End Proc
  48. > M>=20
  49. > M> Unfortunately, becouse of all the structure of the program, the screen=
  50.  is
  51. > M> in
  52. > M> Hi resolution, but you have just to use R/2 in the sin() part.
  53. > M> But the biggest matter is that the 0 degree must be at 12 o'clock, 90
  54. > M> degrees at 3 o'clock and so on in clockwise (instead the trig function=
  55. s
  56. > M> work
  57. > M> in the other direction.).
  58. > M> Finally, it must be fast enough, even if not just like the Circle comm=
  59. and
  60. > M> (or Fcircle by Turbo extension!).
  61. >=20
  62. > AT LAST! An interesting problem!
  63. >=20
  64. > This should do it:
  65. >=20
  66. > Procedure _PART_OF_CIRCLE[R,A,B,X,Y,STP]
  67. >    Gr Locate X+Sin(A)*R,Y-Cos(B)*R
  68. >    For N=3DA+STP To A+B Step STP
  69. >       Draw To X+Sin(N)*R,Y-Cos(N)*R
  70. >    Next N
  71. > EndProc
  72.  
  73. If you want speed you should put Sin & Cos into arrays. Floating point
  74. calculations are really sssslllooooowwwwww.....
  75.  
  76. Example:
  77.  
  78. dim si(360),co(360)
  79. for t=3D0 to 360:si(t)=3Dsin(t)*256:co(t)=3Dcos(t)*256:next
  80.  
  81. and the draw part should be:
  82. Draw To X+(SI(N)*R)/256,Y-(CO(N)*R)/256
  83.                                =20
  84. the /256 is done with bitshifting so it don't take much of time,
  85. at least when compiled. Btw. isn't AMCAF's Turbo draw much faster?
  86. If you have AMCAF (or Turbo extension) use it instead of amos!
  87.  
  88. Or even better, you can precalculate Sin(N)*R values with every possible
  89. N and R but it takes lots of memory... If you really want the speed...=20
  90.  
  91. Pete
  92.  
  93. - Petri H{kkinen / mystic@tlti.tokem.fi -
  94. =20
  95. >=20
  96. > Where:
  97. >   R=3DRadius
  98. >   A=3DStart angle
  99. >   B=3DDegrees to rotate
  100. > X+Y=3DCentre of circle
  101. > STP=3DAccuracy (small=3Dslow but accurate, large=3Dfast but less accurate=
  102. )
  103. >     Use about 4-5, depending on the size of the circle.
  104. >=20
  105. > Bye  _________________________________
  106. >     /                                 \
  107. >     > Ben Wyatt - bwyatt@paston.co.uk <
  108. >     \_________________________________/ =A91995 Very Interesting Signatur=
  109. es
  110. >=20
  111.